package com.anrongtec.zcpt.listener;

import android.support.design.widget.AppBarLayout;
/**
 * appbarLayout 展开和收起的监听
 * @author cxy
 *
 */
public abstract class AppBarStateChangeListener implements AppBarLayout.OnOffsetChangedListener {  
	   
    public enum State {  
        EXPANDED,  
        COLLAPSED,  
        IDLE  
    }  
   
    private State mCurrentState = State.IDLE;  
   
    @Override  
    public final void onOffsetChanged(AppBarLayout appBarLayout, int i) {  
        if (i == 0) {  
            if (mCurrentState != State.EXPANDED) {  
                onStateChanged(appBarLayout, State.EXPANDED);  
            }  
            mCurrentState = State.EXPANDED;  
        } else if (Math.abs(i) >= appBarLayout.getTotalScrollRange()) {  
            if (mCurrentState != State.COLLAPSED) {  
                onStateChanged(appBarLayout, State.COLLAPSED);  
            }  
            mCurrentState = State.COLLAPSED;  
        } else {  
            if (mCurrentState != State.IDLE) {  
                onStateChanged(appBarLayout, State.IDLE);  
            }  
            mCurrentState = State.IDLE;  
        }  
    }  
   
    public abstract void onStateChanged(AppBarLayout appBarLayout, State state);  
}
